﻿using AccesoDatos.Modulos.ClasesAccesoDatos;
using Modelado.Modulos.ClasesModelado;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Logica.Modulos.ClasesLogica
{
    public class LOG_Empresa : Negocio
    {
        public void CRE_Empresa(MOD_Empresa obj)
        {
            try
            {
                this.IniciarTransaccion();

                AD_Empresa objBD = new AD_Empresa();

                objBD.CRE_Empresa(this.comando, obj);

                this.ConfirmarTransaccion();
            }
            catch (Exception exc)
            {
                this.DeshacerTransaccion();
                throw exc;
            }
        }

        public void DEL_Empresa(string codigo)
        {
            try
            {
                this.IniciarTransaccion();

                AD_Empresa objBD = new AD_Empresa();

                objBD.DEL_Empresa(this.comando, codigo);

                this.ConfirmarTransaccion();
            }
            catch (Exception exc)
            {
                this.DeshacerTransaccion();
                throw exc;
            }
        }


        public void UPD_Empresa(MOD_Empresa obj)
        {
            try
            {
                this.IniciarTransaccion();

                AD_Empresa objBD = new AD_Empresa();

                objBD.UPD_Empresa(this.comando, obj);

                this.ConfirmarTransaccion();
            }
            catch (Exception exc)
            {
                this.DeshacerTransaccion();
                throw exc;
            }

        }

        public List<MOD_Empresa> SEL_Grid_Empresa()
        {
            try
            {
                this.AbrirConexion();

                AD_Empresa objBD = new AD_Empresa();

                List<MOD_Empresa> lista = objBD.SEL_Grid_Empresa(this.comando);

                this.CerrarConexion();

                return lista;
            }
            catch (Exception exc)
            {
                this.CerrarConexion();
                throw exc;
            }
        }


        public MOD_Empresa SEL_EmpresaByID(int EMP_CODEmpresa)
        {
            try
            {
                this.AbrirConexion();

                AD_Empresa objBD = new AD_Empresa();

                MOD_Empresa objEmpresa = objBD.SEL_EmpresaByID(this.comando, EMP_CODEmpresa);

                this.CerrarConexion();

                return objEmpresa;
            }
            catch (Exception exc)
            {
                this.CerrarConexion();
                throw exc;
            }

        }

        

        public int SEL_EmpresaByNombre(string EMP_NOMBRE)
        {
            try
            {
                this.AbrirConexion();

                AD_Empresa objBD = new AD_Empresa();

                int cant_cli = objBD.SEL_EmpresaByNombre(this.comando, EMP_NOMBRE);

                this.CerrarConexion();

                return cant_cli;
            }
            catch (Exception exc)
            {
                this.CerrarConexion();
                throw exc;
            }

        }
    }
}
